summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js')
-rw-r--r--opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js45
1 files changed, 37 insertions, 8 deletions
diff --git a/opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js b/opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js
index 76a8d23b..b21db44c 100644
--- a/opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js
+++ b/opendc-web/opendc-web-ui/src/pages/projects/[project]/portfolios/[portfolio].js
@@ -21,17 +21,46 @@
*/
import { useRouter } from 'next/router'
-import App from '../../../../containers/app/App'
+import Head from 'next/head'
+import AppNavbarContainer from '../../../../containers/navigation/AppNavbarContainer'
+import React, { useEffect } from 'react'
+import { useProject } from '../../../../data/project'
+import ProjectSidebarContainer from '../../../../containers/app/sidebars/project/ProjectSidebarContainer'
+import PortfolioResultsContainer from '../../../../containers/app/results/PortfolioResultsContainer'
+import { useDispatch } from 'react-redux'
+import { openPortfolioSucceeded } from '../../../../redux/actions/portfolios'
-function Project() {
+/**
+ * Page that displays the results in a portfolio.
+ */
+function Portfolio() {
const router = useRouter()
- const { project, portfolio } = router.query
+ const { project: projectId, portfolio: portfolioId } = router.query
+
+ const project = useProject(projectId)
+ const title = project?.name ? project?.name + ' - OpenDC' : 'Simulation - OpenDC'
- if (project && portfolio) {
- return <App projectId={project} portfolioId={portfolio} />
- }
+ const dispatch = useDispatch()
+ useEffect(() => {
+ if (portfolioId) {
+ dispatch(openPortfolioSucceeded(projectId, portfolioId))
+ }
+ }, [projectId, portfolioId, dispatch])
- return <div />
+ return (
+ <div className="page-container full-height">
+ <Head>
+ <title>{title}</title>
+ </Head>
+ <AppNavbarContainer fullWidth={true} />
+ <div className="full-height app-page-container">
+ <ProjectSidebarContainer />
+ <div className="container-fluid full-height">
+ <PortfolioResultsContainer />
+ </div>
+ </div>
+ </div>
+ )
}
-export default Project
+export default Portfolio